home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / G-Games / (c)ge.d64 / wheel fortune.c (.txt) < prev   
Commodore BASIC  |  2007-02-04  |  9KB  |  249 lines

  1. 0 REM *********************************
  2. 1 REM *       WHEEL OF FORTUNE        *
  3. 2 REM *                               *
  4. 3 REM *BY:DEAN J. GAUDET              *
  5. 4 REM *22 MAIDSTONE CRES. BRAMALEA    *
  6. 5 REM *ONTARIO,CANADA                 *
  7. 6 REM *L6S 2Z5     : 791-8614         *
  8. 7 REM *********************************
  9. 8 REM *          YY/MM/DD             *
  10. 9 REM *WRITTEN:1982/12/30             *
  11. 15 REM*********************************
  12. 16 REM*         VARIABLES             *
  13. 17 REM*          NUMERIC              *
  14. 18 REM*PN(X)=NUMBER PLAYER X BETS ON  *
  15. 19 REM*PB(X)=AMOUNT BET ON PN(X) ^    *
  16. 20 REM*PM(X)=PLAYER X'S MONEY         *
  17. 21 REM*PI(X)=PLAYER INDICATER 1= ON   *
  18. 22 REM*QX(X)=HOME X FOR PLAYER X'S BOX*
  19. 23 REM*QY(X)=HOME Y FOR PLAYER X'S BOX*
  20. 24 REM*WN=WINNING NUMBER              *
  21. 25 REM*PL=NUMBER OF PLAYERS PLAYING   *
  22. 26 REM*I = INDEX FOR ARRAYS           *
  23. 27 REM*DL=DELAY LOOP                  *
  24. 28 REM*ZX,ZY= CORDS. FOR SUB AT 50200 *
  25. 29 REM*ZL=MAXIMUM LEGNTH OF STRING FOR*
  26. 30 REM*   INPUT AT 60000,THEN IT BECO-*
  27. 31 REM*   MES Z1.                     *
  28. 32 REM*ZK=ASCII CODE OF ZK$(SEE BELOW)*
  29. 33 REM*ZT=TIMER OF CUSOR IN SUB.@60000*
  30. 34 REM*ZC=WHICH CARACTER FOR CURSOR 1 *
  31. 35 REM*   OR 2 FOR SUB. AT 60000      *
  32. 36 REM*D= NUMBER OF TIMES TO SPIN WHL.*
  33. 37 REM*IN=VALUE OF IN$ (SEE BELOW)    *
  34. 40 REM*********************************
  35. 41 REM*          STRINGS              *
  36. 42 REM*PN$(X)=PLAYER X'S NAME         *
  37. 43 REM*N$(X)=NUMBER X IN THE WHEEL    *
  38. 44 REM*IN$=INPUT FROM SUB. AT 60000   *
  39. 45 REM*ZD$= DELETE                    *
  40. 46 REM*DN$=DOWN$ FOR SUB. AT 50200    *
  41. 47 REM*RT$=RIGHT$ FOR SUB. AT 50200   *
  42. 48 REM*ZK$=KEY PRESSED IN SUB. AT60000*
  43. 98 REM*********************************
  44. 99 DIMN$(10),PN$(4),PM(4),PB(4),PN(4),QX(4),QY(4),PI(4)
  45. 100 FORI=1TO10:Z=I:GOSUB41000:NEXTI
  46. 110 DN$=""
  47. 120 RT$=""
  48. 130 DATA15,1,15,20,20,1,20,20
  49. 140 FORI=1TO4:READQY(I),QX(I):NEXTI
  50. 150 FORI=1TO4:PM(I)=100:NEXTI
  51. 160 FORI=1TO4:PB(I)=0:PN(I)=0:NEXTI
  52. 997 REM********************************
  53. 998 REM*START OF MAIN PROGRAM         *
  54. 999 REM********************************
  55. 1000 PRINT"[147]";:POKE53280,0:POKE53281,0
  56. 1010 PRINT" [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
  57. 1020 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
  58. 1030 PRINT"[215]OULD YOU LIKE INSTRUCTIONS?    [157][157][157]";:ZL=3:GOSUB60000
  59. 1040 IN$=LEFT$(IN$,1)
  60. 1050 IFIN$="N"THEN1320
  61. 1060 IFIN$<>"Y"THEN1030
  62. 1070 PRINT"[147] [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
  63. 1080 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
  64. 1090 PRINT"  [212]HE OBJECT OF THIS GAME IS TO WIN AS"
  65. 1100 PRINT"MUCH AS YOU CAN BY BETTING ON THE WHEEL"
  66. 1110 PRINT". [198]ROM 1-4 PLAYERS CAN PLAY. [197]ACH PLAYER";
  67. 1120 PRINT"STARTS OFF WITH $100 TO BET ON ON THE"
  68. 1130 PRINT"WHEEL  . [217]OU WIN MONEY IF THE WHEEL"
  69. 1140 PRINT"STOPS ON THE NUMBER YOU CHOSE."
  70. 1150 PRINT"  [201] WILL ASK YOU WHICH NUMBER YOU ARE"
  71. 1160 PRINT"BETTING ON, AND THEN [201] WILL ASK YOU HOW"
  72. 1170 PRINT"MUCH YOU ARE BETTING ON THAT NUMBER. [201]"
  73. 1190 PRINT"DO THIS FOR EVERY PLAYER THAT IS PLAYING";
  74. 1220 PRINT" [212]HE MONEY YOU WIN DEPENDS ON THE NUMBER";
  75. 1230 PRINT"YOU BET ON AND HOW MUCH YOU BET."
  76. 1240 ZC=0:GOSUB50000
  77. 1250 PRINT"[147] [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
  78. 1260 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
  79. 1270 PRINT" [201]F THE NUMBER YOU BET ON IS EVEN THEN"
  80. 1280 PRINT"YOU WILL WIN 1 AND 1/2 MORE THAN YOU[160]BET";
  81. 1300 PRINT"  [199]OOD [204]UCK...[217]OU'LL NEED IT!!!!"
  82. 1310 ZC=1:GOSUB50000
  83. 1317 REM******************************
  84. 1318 REM*START OF GAME               *
  85. 1319 REM******************************
  86. 1320 PRINT"[147] [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
  87. 1330 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
  88. 1340 PRINT"[200]OW MANY PLAYERS (1-4)? ";:ZL=1:GOSUB60000
  89. 1350 IFIN$<"1"ORIN$>"4"THEN1340
  90. 1360 PL=VAL(IN$)
  91. 1370 FORI=1TOPL:PRINTCHR$(13);
  92. 1380 PRINT"[197]NTER PLAYER";I;"[157]'S NAME: ";:ZL=9:GOSUB60000
  93. 1385 IFLEN(IN$)<>9THENIN$=IN$+" ":GOTO1385
  94. 1390 PN$(I)=IN$:PI(I)=1:NEXTI:PRINT"[147]";
  95. 1397 REM*******************************
  96. 1398 REM*INPUT #&HOW MUCH             *
  97. 1399 REM*******************************
  98. 1400 GOSUB30000
  99. 1410 FORI=1TOPL:ZX=QX(I):ZY=QY(I):GOSUB50200
  100. 1415 IFPI(I)=0THEN1430
  101. 1420 PRINT"";PN$(I)
  102. 1425 GOSUB50200:PRINT"";PM(I)
  103. 1430 NEXTI
  104. 1440 FORI=1TOPL:IFPI(I)=0THEN1530
  105. 1450 ZX=10:ZY=8:GOSUB50200:PRINT"[208]LAYER";I;"[157][157][157]# : ";PN$(I)
  106. 1460 PRINTSPC(9);"[215]HICH NUMBER(1-20)?   [157][157]";:ZL=2:GOSUB60000:IN=VAL(IN$)
  107. 1470 IFIN>20ORIN<1THEN1450
  108. 1480 PN(I)=IN
  109. 1490 PRINTCHR$(13);SPC(10);"AND HOW MUCH?      [157][157][157][157][157]";:ZL=5:GOSUB60000
  110. 1500 IN=INT(VAL(IN$))
  111. 1510 IFIN<1ORIN>PM(I)THENPRINT"[145][145]";CHR$(13);:GOTO1490
  112. 1520 PB(I)=IN
  113. 1530 NEXTI
  114. 1537 REM*******************************
  115. 1538 REM*PRINT OUT #&AMOUNT           *
  116. 1539 REM*******************************
  117. 1540 FORI=1TOPL:IFPI(I)=0THEN1580
  118. 1550 ZX=QX(I):ZY=QY(I):GOSUB50200
  119. 1560 PRINT"";PB(I)
  120. 1570 GOSUB50200:PRINT"";PN(I)
  121. 1580 NEXTI
  122. 1587 REM*******************************
  123. 1588 REM*WHEEL  ROLLING               *
  124. 1589 REM*******************************
  125. 1590 GOSUB40000
  126. 1597 REM*******************************
  127. 1598 REM*PAY UP                       *
  128. 1599 REM*******************************
  129. 1600 WN=VAL(N$(6))
  130. 1610 ZX=1:ZY=8:GOSUB50200:PRINT"                                      "
  131. 1620 PRINT"                                       "
  132. 1630 PRINT"                                       "
  133. 1640 FORI=1TOPL
  134. 1650 IFPN(I)=WNTHEN1690
  135. 1660 PM(I)=PM(I)-PB(I)
  136. 1670 IFPM(I)<=0THEN20000
  137. 1680 NEXTI:GOTO1770
  138. 1687 REM*******************************
  139. 1688 REM* A WINNER                    *
  140. 1689 REM*******************************
  141. 1690 ZX=1:ZY=8:GOSUB50200
  142. 1700 IFINT(WN/2)=WN/2THENPB(I)=INT(PB(I)*1.5+.5)
  143. 1710 PRINT"[195]ONGRATULATIONS ";PN$(I)
  144. 1720 PRINT"[217]OU WON $";PB(I)
  145. 1730 PM(I)=PM(I)+PB(I)
  146. 1740 IFPM(I)>99999THENPM(I)=99999
  147. 1750 FORDL=1TO2000:NEXTDL
  148. 1760 GOTO1680
  149. 1770 FORI=1TOPL:PB(I)=0:PN(I)=0:NEXTI
  150. 1790 ZX=1:ZY=8:GOSUB50200:PRINT"                                      "
  151. 1800 PRINT"                                       "
  152. 1810 PRINT"                                       "
  153. 1820 GOTO1400
  154. 19997 REM******************************
  155. 19998 REM*  PLAYER I IS OUT           *
  156. 19999 REM******************************
  157. 20000 IFPI(I)=0THEN1680
  158. 20005 PI(I)=0:PB(I)=0:PN(I)=0
  159. 20010 ZX=1:ZY=8:GOSUB50200
  160. 20020 PRINT"                                      "
  161. 20030 PRINT"                                       "
  162. 20050 ZX=1:ZY=8:GOSUB50200
  163. 20060 PRINT"[212]OO BAD ";PN$(I);CHR$(13);" YOU'RE OUT OF THE GAME";
  164. 20070 FORDL=1TO2000:NEXTDL
  165. 20080 IFPI(1)=0ANDPI(2)=0ANDPI(3)=0ANDPI(4)=0THEN25000
  166. 20090 GOTO1680
  167. 24997 REM******************************
  168. 24998 REM* EVERYONE IS OUT            *
  169. 24999 REM******************************
  170. 25000 PRINT"[147]";
  171. 25010 PRINT" [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
  172. 25020 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
  173. 25030 PRINT"  [212]OO BAD EVERYONE IS OUT."
  174. 25040 PRINT" [215]OULD YOU LIKE TO PLAY AGAIN? ";:ZL=3:GOSUB60000
  175. 25050 IN$=LEFT$(IN$,1)
  176. 25060 IFIN$="Y"THENRUN
  177. 25070 PRINTCHR$(13);
  178. 25080 PRINT" [207]KAY,BYE. [212]HANKS FOR PLAYING!";
  179. 25090 GOTO63999
  180. 29997 REM******************************
  181. 29998 REM*SUBROUTINE TO UPDATE SCREEN *
  182. 29999 REM******************************
  183. 30000 PRINT"";
  184. 30010 PRINT" [212]HE [215]HEEL OF [198]ORTUNE [194]Y [196]EAN [202]. [199]AUDET ";
  185. 30015 PRINT" [184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184][184] ";
  186. 30020 PRINTTAB(5);"[172][162][162][162][162][162][162][162][162][162][162][162][162][187][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
  187. 30030 PRINTTAB(5);"[161][161][146]"
  188. 30040 PRINTTAB(5);"[188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][190][146]"
  189. 30050 PRINT"";
  190. 30060 PRINT"[172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187][146]";
  191. 30070 PRINT"[161][208]LAYER#1:         [221][208]LAYER#2:          [161][146]";
  192. 30080 PRINT"[161][205]ONEY LEFT $      [221][205]ONEY LEFT $       [161][146]";
  193. 30090 PRINT"[161][194]ETTING $         [221][194]ETTING $          [161][146]";
  194. 30100 PRINT"[161][194]ETTING ON #      [221][194]ETTING ON #       [161][146]";
  195. 30110 PRINT"[161][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][219][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][161][146]";
  196. 30120 PRINT"[161][208]LAYER#3:         [221][208]LAYER#4:          [161][146]";
  197. 30130 PRINT"[161][205]ONEY LEFT $      [221][205]ONEY LEFT $       [161][146]";
  198. 30140 PRINT"[161][194]ETTING $         [221][194]ETTING $          [161][146]";
  199. 30150 PRINT"[161][194]ETTING ON #      [221][194]ETTING ON #       [161][146]";
  200. 30160 PRINT"[188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][190][146]";
  201. 30170 RETURN
  202. 39997 REM******************************
  203. 39998 REM*SUBROUTINE FOR ROLLING WHEEL*
  204. 39999 REM******************************
  205. 40000 FORD=0TOINT(RND(1)*10)+16
  206. 40005 FORI=1TO10
  207. 40010 ZX=3+I*3:ZY=6:GOSUB50200
  208. 40020 PRINTN$(I);
  209. 40025 IFD<15THEN40035
  210. 40030 FORI1=1TO(D-15)*5:NEXTI1
  211. 40035 NEXTI
  212. 40040 FORI=10TO2STEP-1:N$(I)=N$(I-1):NEXTI
  213. 40050 Z=1:GOSUB41000
  214. 40060 NEXTD
  215. 40070 RETURN
  216. 41000 T$=STR$(INT(RND(1)*20)+1):T$=MID$(T$,2,LEN(T$)-1)
  217. 41010 IFLEN(T$)<>2THENT$="0"+T$
  218. 41020 N$(Z)=T$:RETURN
  219. 49997 REM******************************
  220. 49998 REM*SUBROUTINE TO WAIT FOR RET. *
  221. 49999 REM******************************
  222. 50000 PRINT"[208]RESS [210][197][212][213][210][206][146] TO ";:IFZC=0THENPRINT"CONTINUE.":GOTO50020
  223. 50010 PRINT"BEGIN."
  224. 50020 GETKY$:IFKY$<>CHR$(13)THEN50020
  225. 50030 RETURN
  226. 50197 REM******************************
  227. 50198 REM*POSITION CURSOR AT ZX,ZY    *
  228. 50199 REM******************************
  229. 50200 PRINTLEFT$(DN$,ZY);LEFT$(RT$,ZX);:RETURN
  230. 59997 REM******************************
  231. 59998 REM*SUBROUTINE FOR INPUT        *
  232. 59999 REM******************************
  233. 60000 Z1=ZL:ZL=0:ZD$=CHR$(20):ZT=TI+35:ZC=1:IN$="":POKE198,0
  234. 60010 GETZK$:IFZK$=""ANDZT>TITHEN60010
  235. 60020 IFZK$=""THENPRINTMID$("[166] ",ZC,1);"[157]";:ZC=3-ZC:ZT=TI+30:GOTO60010
  236. 60030 ZK=ASC(ZK$)
  237. 60040 IFZK=13THENPRINT" ";:RETURN
  238. 60050 IFZK=20ANDZLTHENIN$=LEFT$(IN$,ZL-1):ZL=ZL-1:PRINTZD$;:GOTO60010
  239. 60055 IFZL=Z1THEN60010
  240. 60060 IFZK<32OR(ZK>127ANDZK<160)THEN60010
  241. 60070 ZL=ZL+1:IN$=IN$+ZK$
  242. 60080 PRINTZK$;ZD$;ZK$;
  243. 60100 GOTO60010
  244. 63995 REM******************************
  245. 63996 REM*THIS LINE IS TO END THE PROG*
  246. 63997 REM*WITHOUT ERRORS WHEN CONT.   *
  247. 63998 REM******************************
  248. 63999 END
  249.